#ifndef ITEMMANAGEMENTWIDGET_H
#define ITEMMANAGEMENTWIDGET_H

#include <QWidget>
#include <QTableWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QHeaderView>
#include <QMessageBox>
#include <QGroupBox>
#include <QGridLayout>
#include <QTableWidgetItem>
#include <QAbstractItemView>
#include "databasemanager.h"

QT_BEGIN_NAMESPACE
namespace Ui {
class ItemManagementWidget;
}
QT_END_NAMESPACE

class ItemManagementWidget : public QWidget
{
    Q_OBJECT

public:
    explicit ItemManagementWidget(QWidget *parent = nullptr);
    ~ItemManagementWidget();
    
    // 刷新物品列表
    void refreshItemList();
    // 设置当前用户信息
    void setCurrentUser(const UserInfo& userInfo);

private slots:
    // 添加物品按钮点击
    void onAddItemClicked();
    // 编辑物品按钮点击
    void onEditItemClicked();
    // 删除物品按钮点击
    void onDeleteItemClicked();
    // 入库按钮点击
    void onStockInClicked();
    // 出库按钮点击
    void onStockOutClicked();
    // 搜索框文本变化
    void onSearchTextChanged();
    // 表格双击事件
    void onItemTableDoubleClicked(int row, int column);
    // 查看操作记录
    void onViewRecordsClicked();

private:
    // 初始化UI界面
    void setupUI();
    // 加载物品数据到表格
    void loadItemsToTable(const QList<ItemInfo>& items);
    // 更新统计信息
    void updateStatistics();
    // 获取当前选中的物品
    ItemInfo getSelectedItem();
    // 检查是否有选中项
    bool hasSelection();
    
    Ui::ItemManagementWidget *ui;
    UserInfo m_currentUser;
    QList<ItemInfo> m_allItems;
};

#endif // ITEMMANAGEMENTWIDGET_H